Apache CustomLog日志切割 按蜘蛛分割 / Apache CustomLog日志切割 按蜘蛛分割

按蜘蛛分割:

第一步:找到apache的配置文件httpd.conf,在apache安装目录下的conf目录中。

第二步:在httpd.conf文件中搜索‘SetEnvIfNoCase’,在下方添加几条配置信息如下:

#专门记录某个蜘蛛记录
#百度蜘蛛配置
SetEnvIfNoCase User-Agent Baiduspider baidu_robot
#搜狗蜘蛛配置
SetEnvIfNoCase User-Agent sogou sogou_robot

第三步:依然在httpd.conf文件中搜索‘LogFormat’,在下方添加几条配置信息如下:

LogFormat "%h %t \"%{Host}i\" \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" baidu_robot
LogFormat "%h %t \"%{Host}i\" \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" sogou_robot

第四步:依然在httpd.conf文件中搜索‘CustomLog "/home/wwwlogs/access_log" common’,在下方添加几条配置信息如下:

CustomLog "/home/wwwlogs/access_baidu_log" baidu_robot      #百度日志存放文件
CustomLog "/home/wwwlogs/access_sogou_log" sogou_robot      #搜狗日志存放文件

第五步:保存,重启apache即可。

我们在开发应用程序时难免会遇到出现没有被try…catch抓住的RunTimeException信息,从而导致程序异常崩溃退出,大大的影响了用户体验。那么有没有什么方法能避免这一现象呢?

网上一查资料,果然有,UncaughtExceptionHandler就是专门干这个的,看名字就知道啥意思了,如果还不了解这个Google或者Baidu一下 UncaughtExceptionHandler对于它的介绍必须一卡车。

但是网上的例子无一例外的把错误日志记录到文件或者发往服务器,然后使用Toast或者Dialog提示一下“您的程序出现了异常”,最后应用程序还是退出了,还是退出了。我不能让应用程序退出!

那怎么办呢,下面是我的思路,如果不想看就直接跳过这一段看实现结果好了。

首先思路就是能不能把整个应用程序启动的Activity的堆栈信息拿到,当应用程序退出后,在其他进程里根据堆栈信息的先后顺序,逻辑控制一下不就复原了吗,看了好长时间的文档也没有看到怎么得到整个应用的堆栈信息。

思路夭折。有一天无意中看到这Process.killProcess这个方法能重新启动应用,那么原来的堆栈信息不就回来了吗,这下好了,连逻辑控制都省去了。好吧,来试试吧。

原理是这么个原理,至于具体怎么操作可以看我这篇文章的操作:ANDROID 异常奔溃日志捕获